{"values":{"name":"Pajamavimo dokumentas  -> Išlaidavimo dokumento sukūrimas","code":"AA260126","description":null,"triggerTypeId":0,"placeId":"inventory-adjustments-list","scriptContent":"const ids = initial?.ids; // array\nconst sortString = initial?.sortString; // string\nconst filterString = initial?.filterString; // string\nconst maxSize = 100;\nconst filter =\n  initial?.id === undefined\n    ? \" id  = \" + toString(initial?.ids ?? [])\n    : \" id = \" + initial.id;\n\nif (initial?.ids?.length < 1) {\n  throw new UserError(\"Nepažymėtas nei vienas dokumentas\");\n}\n\nconst journalId = await getJournalId();\n\nlet documents = await getInventoryAdjestmnts(\n  companyId,\n  filter,\n  maxSize,\n  filterString,\n  sortString\n);\n\n// ---------------------------\n// CREATE dalies tvarkymas + log'ai kas sukurta\n// ---------------------------\nconst created = []; // kas buvo sukurta (movement + lines)\nconst failed = []; // kas nepavyko (movement ar line)\n\nfor (const document of documents) {\n  const docRef = document?.documentNo;\n\n  const objectInput = {\n    documentNo: \"\",\n    opDate: document.opDate,\n    addressOut: {},\n    addressIn: {},\n    departmentOutId: document.lines?.[0]?.departmentId,\n    departmentInId: initial.departmentIn,\n    journalId: journalId,\n    companyId,\n    docReference: docRef,\n  };\n\n  let resultCreateInventoryMovement;\n\n  // --- CREATE InventoryMovement ---\n  try {\n    resultCreateInventoryMovement = await mutate(\n      \"createInventoryMovement\",\n      { inventoryMovement: objectInput },\n      { select: [\"id\", \"documentNo\"] }\n    );\n\n    log.info(\n      `${docRef} - InventoryMovement created: ` +\n        JSON.stringify(\n          {\n            id: resultCreateInventoryMovement?.id,\n            documentNo: resultCreateInventoryMovement?.documentNo,\n          },\n          null,\n          2\n        )\n    );\n\n    log.trace(\n      `${docRef} - InventoryMovement payload: ` +\n        JSON.stringify(objectInput, null, 2)\n    );\n  } catch (error) {\n    const errInfo = {\n      docRef,\n      functionName: \"createInventoryMovement\",\n      error: error?.message,\n      payload: objectInput,\n    };\n    log.error(\n      \"Create InventoryMovement error: \" + JSON.stringify(errInfo, null, 2)\n    );\n    failed.push(errInfo);\n    continue; // kitas dokumentas\n  }\n\n  // --- CREATE InventoryMovementLine ---\n  const linesCreated = [];\n  const linesFailed = [];\n\n  for (const line of document?.lines ?? []) {\n    const inventoryMovementLine = {\n      inventoryMovementId: resultCreateInventoryMovement.id,\n      active: true,\n      amountCost: line.cost,\n      itemId: line.itemId,\n      itemName: line.itemName,\n      qtyAlt: line.qtyAlt,\n      qtyBase: line.qtyBase,\n      uomAltId: line.uomAltId,\n      uomBaseId: line.uomBaseId,\n    };\n\n    try {\n      const resultCreateInventoryMovementLine = await mutate(\n        \"createInventoryMovementLine\",\n        { inventoryMovementLine },\n        { select: [\"id\", \"code\"] }\n      );\n\n      linesCreated.push({\n        id: resultCreateInventoryMovementLine?.id,\n        code: resultCreateInventoryMovementLine?.code,\n        itemId: line.itemId,\n        itemName: line.itemName,\n      });\n\n      log.info(\n        `${docRef} - InventoryMovementLine created: ` +\n          JSON.stringify(\n            {\n              movementId: resultCreateInventoryMovement.id,\n              lineId: resultCreateInventoryMovementLine?.id,\n              code: resultCreateInventoryMovementLine?.code,\n              itemId: line.itemId,\n              itemName: line.itemName,\n            },\n            null,\n            2\n          )\n      );\n\n      log.trace(\n        `${docRef} - InventoryMovementLine payload: ` +\n          JSON.stringify(inventoryMovementLine, null, 2)\n      );\n    } catch (error) {\n      const errInfo = {\n        docRef,\n        movementId: resultCreateInventoryMovement.id,\n        functionName: \"createInventoryMovementLine\",\n        error: error?.message,\n        payload: inventoryMovementLine,\n      };\n      log.error(\n        \"Create InventoryMovementLine error: \" +\n          JSON.stringify(errInfo, null, 2)\n      );\n      linesFailed.push(errInfo);\n      failed.push(errInfo);\n      // necontinue outer — bandome kitas eilutes\n    }\n  }\n\n  created.push({\n    docRef,\n    movement: {\n      id: resultCreateInventoryMovement?.id,\n      documentNo: resultCreateInventoryMovement?.documentNo,\n    },\n    linesCreated,\n    linesFailedCount: linesFailed.length,\n  });\n\n  log.info(\n    `${docRef} - Summary: ` +\n      JSON.stringify(\n        {\n          movementId: resultCreateInventoryMovement?.id,\n          movementDocumentNo: resultCreateInventoryMovement?.documentNo,\n          linesTotal: (document?.lines ?? []).length,\n          linesCreated: linesCreated.length,\n          linesFailed: linesFailed.length,\n        },\n        null,\n        2\n      )\n  );\n}\n\n// Output: rodom kas sukurta\noutput = {\n  message:\n    failed.length > 0\n      ? `Atlikta su klaidomis. Sukurta dokumentų: ${created.length}, klaidų: ${failed.length}`\n      : `Veiksmas atliktas sėkmingai. Sukurta dokumentų: ${created.length}`,\n  created,\n  failedCount: failed.length,\n};\n\n// ---------------------------\n// Pagalbinės funkcijos (paliktos kaip pas tave)\n// ---------------------------\nasync function getInventoryAdjestmnts(\n  companyId,\n  filter,\n  maxSize,\n  filterString,\n  sortString\n) {\n  const result = await rql(`\n         SELECT \n        documentNo,\n\t\topDate,   \n\t\tlines.active,\n\t\tlines.amount,\n\t\tlines.itemId,\n\t\tlines.itemName,\n\t\tlines.qtyAlt,\n\t\tlines.qtyBase,\n\t\tlines.uomAltId,\n\t\tlines.uomBaseId,\n\t\tlines.rank,\n\t\tlines.departmentId\n        FROM inventoryAdjustments\n        WITH companyId = ${companyId} filterString=${toString(\n    filterString\n  )} sortString=${toString(sortString)} size = ${maxSize}\n        WHERE ${filter}\n    `);\n\n  return result?.content ?? [];\n}\n\nasync function getJournalId() {\n  const result = await rql(`\n\tSELECT\n\tid\n\tFROM journals WITH size = ${maxSize}\n\tWHERE typeId = 9\n\t`);\n\n  return result?.content?.[0]?.id;\n}\n","paramsFormEnabled":true,"paramsFormSchema":"\t[{\r\n\t\t\"blockType\": \"SELECT\",\r\n\t\t\"meta\":{\r\n\t\t\t\"fieldName\": \"departmentIn\",\r\n\t\t\t\"submitFieldName\":\":id\",\r\n\t\t\t\"title\": \"jexl:t('Padalinys gavėjas')\",\r\n\t\t\t\"size\":3, \r\n            \"required\": true,\r\n\t\t\t\"meta\": {\r\n\t\t\t\t\"getItems\": \"rql:@MDPAGE Select id, code, name From departments\",\r\n\t\t\t\t\"labelParam\":\"jexl:mdLabel()\",\r\n\t\t\t\t\"isClearable\":true,\r\n\t\t\t\t\"multiple\":false\r\n\t\t\t}\r\n\t\t}\r\n\t}]","exampleData":"{\r\n     \"ids\": [\"00b86c8c-28fc-4612-a6e9-01faca070a0d\"],\r\n     \"departmentIn\": \"ee8b344a-4d6e-484f-8759-d9759a29d1b8\"\r\n}\r\n   \r\n","activeFrom":null,"activeTo":null,"active":true,"appDefinitionId":"ed57460c-6450-45b2-805f-4a9a072aef61"},"additionalPlaces":[]}